/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Main;

import java.awt.Color;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;

/**
 *
 * @author Usuario
 */
public class BotonCasilla extends JButton{
    
    private int posX, posY;
    private boolean seleccionada = false;
    private Color color;
    private String pieza = "blanco";
    private String nombre;

    /*
     Constructor con la posición de la casilla. Aquí se determina el color que tiene, no la 
     * pieza que está encima.
     */
    public BotonCasilla(int posX, int posY) {
        super();
        this.posX = posX;
        this.posY = posY;
        
        if (posX % 2 == 0) {
            if (posY % 2 == 0) {
                this.color = Color.WHITE;
            } else {
                this.color = Color.BLACK;
            }
        } else {
            if (posY % 2 != 0) {
                this.color = Color.WHITE;
            } else {
                this.color = Color.BLACK;
            }
        }
        this.setBackground(this.color);
    }

    public int getPosX() {
        return posX;
    }

    public void setPosX(int posX) {
        this.posX = posX;
    }

    public int getPosY() {
        return posY;
    }

    public void setPosY(int posY) {
        this.posY = posY;
    }

    public Color getColor() {
        return color;
    }

    public void setColor(Color color) {
        this.color = color;
    }

    public boolean isSeleccionada() {
        return seleccionada;
    }
    
    public void marcarCasilla(){
        this.setSeleccionada(true);
    }
    
    public void desmarcarCasilla(){
        this.setSeleccionada(false);
    }
    
    /*
     Pinta de rojo el fondo si la casilla está seleccionada o de su color si no.
     Pinta la pieza que tiene encima.
     */
    public void pintarBoton(){
        if(this.isSeleccionada())
            this.setBackground(Color.RED);
        
        else
            this.setBackground(this.getColor());
        
        if (this.getPieza().equalsIgnoreCase("torre")) {//javax.swing.JOptionPane.showInputDialog("torre");
            this.setIcon(new ImageIcon("torre2.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("alfil")) {
            this.setIcon(new ImageIcon("alfil2.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("caballo")) {
            this.setIcon(new ImageIcon("caballo2.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("reina")) {
            this.setIcon(new ImageIcon("reina2.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("rey")) {
            this.setIcon(new ImageIcon("rey2.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("peon")) {
            this.setIcon(new ImageIcon("peon2.gif"));
        }

        //  Mostrar piezas negras
        if (this.getPieza().equalsIgnoreCase("Ntorre")) {
            this.setIcon(new ImageIcon("torre1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("Nalfil")) {
            this.setIcon(new ImageIcon("alfil1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("Ncaballo")) {
            this.setIcon(new ImageIcon("caballo1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("Nreina")) {
            this.setIcon(new ImageIcon("reina1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("Nrey")) {
            this.setIcon(new ImageIcon("rey1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("Npeon")) {
            this.setIcon(new ImageIcon("peon1.gif"));
        }
        if (this.getPieza().equalsIgnoreCase("blanco")) {
            this.setIcon(null);
        }
    }

    /**
     * @return the pieza
     */
    public String getPieza() {
        return pieza;
    }

    /**
     * @param pieza the pieza to set
     */
    public void setPieza(String pieza) {
        this.pieza= pieza;
    }

    /**
     * @param seleccionada the seleccionada to set
     */
    public void setSeleccionada(boolean seleccionada) {
        this.seleccionada = seleccionada;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

}
